Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import { apiService } from './api';
import { ApiResult } from '@/types';
export interface Notification {
id: string;
notification_type: 'info' | 'success' | 'warning' | 'error';
title: string;
message: string;
count?: number;
priority: 'high' | 'medium' | 'low';
created_at: string;
action_url?: string;
}
export interface NotificationsResponse {
notifications: Notification[];
total_count: number;
unread_count: number;
}
class NotificationsService {
async getResellerNotifications(): Promise<ApiResult<NotificationsResponse>> {
try {
return await apiService.get<NotificationsResponse>('/api/reseller/notifications');
} catch {
return {
success: false,
error: {
error: 'Failed to fetch notifications',
details: 'Could not load notifications',
timestamp: new Date().toISOString()}
};
}
}
async getAdminNotifications(): Promise<ApiResult<NotificationsResponse>> {
try {
return await apiService.get<NotificationsResponse>('/api/admin/notifications');
} catch {
return {
success: false,
error: {
error: 'Failed to fetch notifications',
details: 'Could not load notifications',
timestamp: new Date().toISOString()}
};
}
}
}
export const notificationsService = new NotificationsService();
|